package ltd.hanamaki.selenium.study.studySelenium;

import org.apache.commons.io.FileUtils;
import org.openqa.selenium.*;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.Select;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import java.io.File;
import java.io.IOException;

/**
 * @author : FHM
 * @data : 2021/9/3 - 10:56
 */
public class Demo02 {



    static WebDriver driver;
    static Navigation navigate;

    @BeforeClass
    public void setUp() {
        /* 3.1.  */
        /* 注册 火狐浏览器打开的位置 */
        System.setProperty("webdriver.gecko.driver", "C:\\Program Files\\Mozilla Firefox\\geckodriver.exe");
        /* 3.2 注册 驱动 */
        driver = new FirefoxDriver();

        /* 实例化 导航对象 */
        navigate = driver.navigate();
    }

    @Test
    public void t() throws InterruptedException {
        /* 打开 百度地址 */
        driver.get("file:///C:/Users/86130/Desktop/testhtml/exam/House.html");

        /* 双击事件 */
        /* 获得 想要双击的 元素 */
        WebElement username = driver.findElement(By.name("username"));

        /* 通过事件来双击  */
        Actions actions = new Actions(driver);
        actions.doubleClick(username).build().perform();



        /* 文件上传 测试  */
        WebElement element = driver.findElement(By.xpath("//input[@type='file']"));
        element.sendKeys("C:\\Program Files\\Google\\Chrome\\Application\\chromedriver.exe");

         /* 截图测试   */
        File screenshotAs = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
        /* 工具类   */
        try {
            FileUtils.copyFile(screenshotAs, new File("e://test.png"));
        } catch (IOException e) {
            e.printStackTrace();
        }


        /* 测试 物业类别 下拉 列表框是否支持 多选件是否支持 多选  */
        WebElement list1 = driver.findElement(By.name("list1"));
        /* 将 下拉列表框 添加至 select  容器中 */
        Select select = new Select(list1);
        boolean multiple = select.isMultiple();
        System.out.println(multiple);
        System.out.println();
    }



}
